/*
 * PublicLog.h
 *
 *  Created on: 2015-6-24
 *      Author: root
 */

#ifndef PUBLICLOG_H_
#define PUBLICLOG_H_
#include"PublicConfig.h"
#define _FATAL_     0
#define _ERROR_     1
#define _WARNING_   2
#define _INFO_      3
#define _DEBUG_     4
#define _FINE_      5
#define _FINEST_    6
#define _NORMAL_    7
void Log(int level,const char*format,...);
#if !CHECK_PUBLIC_LOG
#define __VALIDATE_FROMAT_SPECIFIERS(...)
#define WARN(...)   do{__VALIDATE_FROMAT_SPECIFIERS(__VA_ARGS__);Log(_WARNING_,__VA_ARGS__);}while(0)
#define WRONG(...)  do{__VALIDATE_FROMAT_SPECIFIERS(__VA_ARGS__);Log(_ERROR_,__VA_ARGS__);}while(0)
#define INFO(...)   do{__VALIDATE_FROMAT_SPECIFIERS(__VA_ARGS__);Log(_INFO_,__VA_ARGS__);}while(0)
#define INFOEX(...) do{__VALIDATE_FROMAT_SPECIFIERS(__VA_ARGS__);Log(_FINE_,__VA_ARGS__);}while(0)
#define DEBUG(...)  do{__VALIDATE_FROMAT_SPECIFIERS(__VA_ARGS__);Log(_DEBUG_,__VA_ARGS__);}while(0)
#else
#include<stdio.h>
#define __VALIDATE_FROMAT_SPECIFIERS(...)
#define WARN(...) do{__VALIDATE_FROMAT_SPECIFIERS(__VA_ARGS__);printf(__VA_ARGS__);}while(0)
#define WRONG(...) do{__VALIDATE_FROMAT_SPECIFIERS(__VA_ARGS__);printf(__VA_ARGS__);}while(0)
#define INFO(...) do{__VALIDATE_FROMAT_SPECIFIERS(__VA_ARGS__);printf(__VA_ARGS__);}while(0)
#define INFOEX(...) do{__VALIDATE_FROMAT_SPECIFIERS(__VA_ARGS__);printf(__VA_ARGS__);}while(0)
#define DEBUG(...) do{__VALIDATE_FROMAT_SPECIFIERS(__VA_ARGS__);printf(__VA_ARGS__);}while(0)
#endif

//打开日志文件
int OpenPublicLog(const char*perfilename);
//关闭日志文件
int ClosePublicLog();
//开启关闭Debug模式
void SetEnableDebug(int bDebug);
//禁止前台显示
void SetDisableShow(int disShow);
//设置CMD模式
void SetCMDMode(int bCmd);
#endif /* PUBLICLOG_H_ */
